#include "RingQueue.hpp"
using namespace std;
// 生产者
void *Productor(void *p)
{
    Ring_Queue<int> *q = static_cast<Ring_Queue<int> *>(p);
    int data = 10;

    while (true)
    {
        // sleep(1);
        q->Equeue(data);
        // cout << "生产成功: " << data << endl;
        data++;
    }
}

// 消费者
void *Consumer(void *c)
{
    Ring_Queue<int> *q = static_cast<Ring_Queue<int> *>(c);
    while (true)
    {
        sleep(1);
        auto ret = q->Pop();
        // cout << "消费成功: " << ret << endl;
    }
}
int main()
{
    pthread_t p = 0, c = 0;
    Ring_Queue<int> *block_queue = new Ring_Queue<int>();
    pthread_create(&p, nullptr, Productor, block_queue); // 生产者线程
    pthread_create(&c, nullptr, Consumer, block_queue);  // 消费者线程创建

    pthread_join(p, nullptr);
    pthread_join(c, nullptr);
    return 0;
}